/**
 * New node file
 */
var mysql = require('mysql');
var fs = require('fs');
var connect = require('connect');
var ejs = require('ejs');


var pool = mysql.createPool({
    host : "localhost",
    port : 3306,
    user : "updios",
    password : "1q2w3e??",
    database : "stock"
});


connect.createServer(connect.bodyParser(), connect.router(function(app) {
	
	//GET - List
	app.get('/', function(request, response) {
		// List.htm 파일을 읽습니다.
		fs.readFile('List.htm','utf8',function(error,data){
			//데이타베이스 쿼리를 실행합니다.
			pool.getConnection(function(err, connection) {
				
				  // Use the connection
				connection.query( 'SELECT * FROM products', function(err, rows) {
					// 응답합니다.
					response.writeHead(200, {'Content-Type':'text/html'});
					response.end(ejs.render(data,{
						data:rows
					}));
					connection.release();
				});
			});
		});
	});
	
	// GET - /DELTE/:id
	app.get('/Delete/:id',function(request, response) {
		//데이타베이스 쿼리를 실행합니다.
		pool.getConnection(function(err, connection) {
			
			// Use the connection
			connection.query( 'DELETE FROM products WHERE id = ? ', [request.params.id]) ; 
			connection.release();

			// 응답합니다.
			response.writeHead(302, {'Location':'/'});
			response.end();
		});
	});
	
	// GET - INSERT 
	app.get('/Insert', function(request, response) {
		
		fs.readFile('Insert.htm', 'utf8', function(error, data) {
			
			// 응답합니다.
			response.writeHead(200,{'Content-Type':'text/html'});
			response.end(data);
		});
	});
	
	// POST - INSERT
	app.post('/Insert', function(request, response) {
		// 변수를 선언합니다.
		var body = request.body;
		// Use the connection
		pool.getConnection(function(err, connection) {
			
			// Use the connection
			connection.query( 'INSERT INTO products(name, modelnumber, series) VALUES ( ?,?,?)', [body.name, body.modelnumber, body.series]) ; 
			connection.release();

			// 응답합니다.
			response.writeHead(302, {'Location':'/'});
			response.end();
		});
		
	});
	
	// GET - /EDIT/:id
	app.get('/Edit/:id', function(request, response) {
		// List.htm 파일을 읽습니다.
		fs.readFile('Edit.htm','utf8',function(error,data){
			//데이타베이스 쿼리를 실행합니다.
			pool.getConnection(function(err, connection) {
				
				  // Use the connection
				connection.query( 'SELECT * FROM products WHERE id = ?', [request.params.id], function(err, rows) {
					// 응답합니다.
					response.writeHead(200, {'Content-Type':'text/html'});
					response.end(ejs.render(data,{
						data:rows[0]
					}));
					connection.release();
				});
			});
		});
	});
	
	
	// POST - /Edit
	app.post('/Edit/:id', function(request, response) {
		// 변수를 선언합니다.
		var body = request.body;
		// Use the connection
		pool.getConnection(function(err, connection) {
			
			// Use the connection
			connection.query( 'UPDATE products SET name = ?, modelnumber = ?, series = ? WHERE id = ?', [body.name, body.modelnumber, body.series, request.params.id]) ; 
			connection.release();

			// 응답합니다.
			response.writeHead(302, {'Location':'/'});
			response.end();
		});
		
	});
	
})).listen(52273,function(){
	console.log('Server Running at http://127.0.0.1:52273');
	
});


